package compra.fake;

import java.util.ArrayList;
import java.util.List;

public class DataBase {

	private static DataBase dataBase = new DataBase();

	private List<Solicitacao> solicitacoes = new ArrayList<Solicitacao>();

	public static DataBase getDataBase() {
		if (DataBase.dataBase == null) {
			DataBase.dataBase = new DataBase();
		}
		return DataBase.dataBase;
	}

	private DataBase() {
		for (int i = 0; i < 5; i++) {
			Solicitacao solicitacao = new Solicitacao();
			this.solicitacoes.add(solicitacao);

			if (i % 2 == 0) {
				solicitacao.setTipo(1);
			}
		}
	}

	public List<Solicitacao> getSolicitacoes() {
		return this.solicitacoes;
	}

	public Solicitacao getSolicitacao(Integer indice) {
		return this.solicitacoes.get(indice);
	}

	public boolean existeCompraParaSolicitacao(Solicitacao solicitacao) {
		return solicitacao.getTipo() == 1;
	}

	public Solicitacao incluiCompra(Solicitacao solicitacao) {
		solicitacao.setTipo(1);
		return solicitacao;
	}

	public Solicitacao existeCompraIncluidaNaoEfetuada(String stringDeBusca) {
		for (Solicitacao solicitacao : this.solicitacoes) {
			if(solicitacao.getId().toString().contains(stringDeBusca) ||
					solicitacao.getISBN().toString().contains(stringDeBusca) ||
					solicitacao.getTitulo().toString().contains(stringDeBusca))
				return solicitacao;
		}
		return null;
	}

	public void efetuaCompra(Solicitacao solicitacao) {
		solicitacao.setTipo(2);
	}
}
